package 电影院;

import java.util.Scanner;

public class Cinema {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("=================界面=================");
        System.out.println("欢迎来到电影院");
        boolean flagjl=false;
        boolean flagqt=false;
        boolean flaggly=false;
        boolean flagdy=false;
        boolean flagfyt=false;
        前台[] qt=new 前台[1];
        经理[] jl=new 经理[1];
        管理员[] gly = new 管理员[1];
        排片表[] list=new 排片表[10];
        放映厅[][] fyt = new 放映厅[5][4];
        gly[0]=new 管理员();
        qt[0] = new 前台("7.16", "188888888888");
        jl[0] = new 经理("7.16", "199999999999");
        for (int m = 0; ; m++) {
            System.out.println("是否进行下一步？回答是或否");
            String panduan=sc.nextLine();
            if (panduan.equals("否")){
                System.out.println("已退出，欢迎下次使用");
                break;
            }
            if (panduan.equals("是")){
            System.out.println("您的下一步是？");
            System.out.println("您有以下选择：");
            System.out.println("1.生成用户");
            System.out.println("2.生成电影");
            System.out.println("3.创建放映厅");
            System.out.println("4.进入管理员的操作系统");
            System.out.println("5.进入经理的操作系统");
            System.out.println("6.进入前台的操作系统");
            System.out.println("7.跳过登录");
            String step= sc.nextLine();
            if(step.equals("跳过登录")){
                flagjl=true;
                flagqt=true;
                flaggly=true;
                System.out.println("已跳过登录");
                continue;
            }
            // 生成用户
            if(step.equals("生成用户")) {
                System.out.println("请输入你想生成的用户");
                String cmd = sc.nextLine();
                if (cmd.equals("经理")) {
                    System.out.println("输入账号和密码");
                    String acount = sc.nextLine();
                    String key = sc.nextLine();
                    int a = jl[0].登录(acount, key);
                    if (a == 1) {
                        flagjl = true;
                        System.out.println("经理生成成功");
                        continue;
                    }
                    if (a == 0) {
                        System.out.println("经理生成失败");
                        continue;
                    }
                }
                if (cmd.equals("前台")) {
                    System.out.println("输入账号和密码");
                    String acount = sc.nextLine();
                    String key = sc.nextLine();
                    int a = qt[0].登录(acount, key);
                    if (a == 1) {
                        flagqt = true;
                        System.out.println("前台生成成功");
                        continue;
                    }
                    if (a == 0) {
                        System.out.println("前台生成失败");
                        continue;
                    }
                }
                if (cmd.equals("管理员")) {
                    System.out.println("输入账号和密码");
                    String acount = sc.nextLine();
                    String key = sc.nextLine();
                    int a = gly[0].登录(acount, key);
                    if (a == 1) {
                        flaggly = true;
                        System.out.println("管理员生成成功");
                        continue;
                    }
                    if (a == 0) {
                        System.out.println("管理员生成失败");
                        continue;
                    }
                }
            }
            if (step.equals("生成电影")){
                // 创建十部电影
                flagdy=true;
                list[0]=new 排片表("哪吒二","饺子","哪吒","没看过",200);
                list[1]=new 排片表("熊心归来","不知道","梅哲仁","没看过",200);
                list[2]=new 排片表("电影三","不知道","梅哲仁","没看过",200);
                list[3]=new 排片表("电影四","不知道","梅哲仁","没看过",200);
                list[4]=new 排片表("电影五","不知道","梅哲仁","没看过",200);
                list[5]=new 排片表("电影六","不知道","梅哲仁","没看过",200);
                list[6]=new 排片表("电影七","不知道","梅哲仁","没看过",200);
                list[7]=new 排片表("电影八","不知道","梅哲仁","没看过",200);
                list[8]=new 排片表("电影九","不知道","梅哲仁","没看过",200);
                list[9]=new 排片表("电影十","不知道","梅哲仁","没看过",200);
                System.out.println("成功创建了十部电影，从一号电影到十号电影分别为：哪吒二，熊心归来，电影三，电影四，电影五，电影六，电影七，电影八，电影九，电影十");
                continue;
            }
            if (step.equals("创建放映厅")){
                flagfyt=true;
                for (int i = 0; i <fyt[0].length; i++) {
                    fyt[0][i]=new 放映厅(8,10,"黄金厅");
                    fyt[1][i]=new 放映厅(10,12,"白银厅");
                    fyt[1][i]=new 放映厅(10,12,"白银厅");
                    fyt[2][i]=new 放映厅(7,8,"翡翠厅");
                    fyt[3][i]=new 放映厅(7,8,"钻石厅");
                    fyt[4][i]=new 放映厅(8,9,"宝石厅");
                }
                for (int i = 0; i <fyt.length; i++) {
                    for (int j = 0; j <fyt[i].length; j++) {
                        fyt[i][j].setChangci(j+1);
                    }
                }
                System.out.println("成功创建了五个放映厅，从一号厅到五号厅分别为：黄金厅，白银厅，翡翠厅，钻石厅，宝石厅");
                System.out.println("每个厅每天最多放四场电影");
                continue;
            }
            if (step.equals("进入管理员的操作系统")){
                if (!flaggly){
                    System.out.println("目前没有管理员，先生成一个试试吧");
                    continue;
                }
                if (flaggly==true){
                    System.out.println("你想让管理员干什么呢");
                    System.out.println("您有以下选择：");
                    System.out.println("1.重置前台密码");
                    System.out.println("2.重置经理密码");
                    System.out.println("3.列出所有用户信息");
                    System.out.println("4.删除经理信息");
                    System.out.println("5.删除前台信息");
                    System.out.println("6.删除管理员信息");
                    System.out.println("7.查询用户信息");
                    System.out.println("8.增加经理");
                    System.out.println("9.增加前台");
                    System.out.println("10.增加管理员");
                    System.out.println("11.修改前台信息");
                    System.out.println("12.修改经理信息");
                    System.out.println("13.退出登录");
                    String glydo=sc.nextLine();
                    if (glydo.equals("重置前台密码")) gly[0].重置前台密码(qt);
                    if (glydo.equals("重置经理密码")) gly[0].重置经理密码(jl);
                    if (glydo.equals("列出所有用户信息")) gly[0].列出所有用户信息(jl,qt);
                    if (glydo.equals("删除经理信息")) gly[0].删除经理信息(jl);
                    if (glydo.equals("删除前台信息")) gly[0].删除前台信息(qt);
                    if (glydo.equals("删除管理员信息")) gly[0].删除管理员信息(gly);
                    if (glydo.equals("查询用户信息")) gly[0].查询用户信息(jl,qt,gly);
                    if (glydo.equals("增加经理")) gly[0].增加经理("7.16", "199999999999");
                    if (glydo.equals("增加前台")) gly[0].增加前台("7.16", "188888888888");
                    if (glydo.equals("增加管理员")) gly[0].增加管理员();
                    if (glydo.equals("修改前台信息")) gly[0].修改前台信息(qt);
                    if (glydo.equals("修改经理信息")) gly[0].修改经理信息(jl);
                    if (glydo.equals("退出登录")) {gly[0].退出登录();flaggly=false;}
                    continue;
                }
                System.out.println("未检测到正确的指令");
                continue;
            }
            if (step.equals("进入经理的操作系统")){
                if (!flagjl){
                    System.out.println("目前没有经理，先生成一个试试吧");
                    continue;
                }
                if (flagjl==true){
                    System.out.println("你想让经理干什么呢");
                    System.out.println("您有以下选择：");
                    System.out.println("1.重置前台密码");
                    System.out.println("2.上映电影");
                    System.out.println("3.查询上映");
                    System.out.println("4.查询电影");
                    System.out.println("5.修改上映");
                    System.out.println("6.删除上映");
                    System.out.println("7.场次信息");
                    System.out.println("8.查看销售额");
                    System.out.println("9.自动排片");
                    System.out.println("10.删除电影");
                    System.out.println("11.退出登录");
                    String jldo=sc.nextLine();
                    if (jldo.equals("重置前台密码")) jl[0].重置前台密码(qt);
                    if (jldo.equals("删除电影")) jl[0].删除电影(list);
                    if (jldo.equals("上映电影")) jl[0].上映电影(list,fyt);
                    if (jldo.equals("查询上映")) jl[0].查询上映(list);
                    if (jldo.equals("查询电影")) jl[0].查询电影(list);
                    if (jldo.equals("修改上映")) jl[0].修改上映(list,fyt);
                    if (jldo.equals("删除上映")) jl[0].删除上映(list,fyt);
                    if (jldo.equals("场次信息")) jl[0].场次信息(fyt);
                    if (jldo.equals("查看销售额")) jl[0].查看销售额(fyt);
                    if (jldo.equals("自动排片")) jl[0].自动排片(list,fyt);
                    if (jldo.equals("退出登录")) {jl[0].退出登录();flagjl=false;}
                    continue;
                }
                System.out.println("未检测到正确的指令");
                continue;
            }
            if (step.equals("进入前台的操作系统")){
                if (!flagqt){
                    System.out.println("目前没有前台，先生成一个试试吧");
                    continue;
                }
                if (flagqt==true){
                    System.out.println("你想让前台干什么呢");
                    System.out.println("您有以下选择：");
                    System.out.println("1.查询上映");
                    System.out.println("2.场次信息");
                    System.out.println("3.查询座位");
                    System.out.println("4.自动选座");
                    System.out.println("5.手动选座");
                    System.out.println("6.退票");
                    System.out.println("7.退出登录");
                    String qtdo=sc.nextLine();
                    if (qtdo.equals("查询上映")) qt[0].查询上映(list);
                    if (qtdo.equals("场次信息")) qt[0].场次信息(fyt);
                    if (qtdo.equals("查询座位")) qt[0].查询座位(fyt);
                    if (qtdo.equals("自动选座")) qt[0].自动选座(fyt);
                    if (qtdo.equals("手动选座")) qt[0].手动选座(fyt);
                    if (qtdo.equals("退票")) qt[0].退票(fyt);
                    if (qtdo.equals("退出登录")) {qt[0].退出登录();flagqt=false;}
                    continue;
                }
                System.out.println("未检测到正确的指令");
                continue;
            }
            }
            System.out.println("未检测到正确的指令");
            continue;
        }
    }
}
